home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga CD-ROM Collection
/
Amiga CD-ROM Collection - Auge 4000 and Cactus and Demo Util.iso
/
cactus
/
01
/
basicprg's
/
superhirn
< prev
next >
Wrap
Text File
|
1988-04-30
|
6KB
|
317 lines
Start:
CLEAR
CLS
PRINT "*************"
PRINT "* Superhirn *"
PRINT "*************"
PRINT
PRINT "Ein Spiel von Freddy Weichert !!!"
REM Falls Dir das Prg. gut gefaellt ueberweise 5,-DM an
REM Friedhelm Weichert
REM Kontonummer: 482125 Bankleitzahl: 31251350
REM Kreissparkasse Grevenbroich
PRINT
PRINT " 1 = Nur verschiedene Farben"
PRINT " 2 = Mit doppelten Farben"
PRINT
INPUT "Welchen Schwierigkeitsgrad waehlen Sie ";schwierigkeit
LOCATE 20,20
PRINT "Zum Spielen druecken Sie bitte eine Taste."
GOSUB WarteTaste
BeginnSpiel:
versuch=1
SCREEN 1,320,200,5,1
WINDOW 2,"Superhirn",,2,1
REM ////////////////// Festlegen der Farben ////////////////
PRINT " 1= 2= 3= 4= 5= 6="
FOR i=1 TO 9
ON i GOSUB rot,blau,gruen,violett,grau,braun,schwarz,weiss,schwarz
IF i<7 THEN
LINE (i*10+(i*30-10),0)-(10+(i*10+(i*30-10)),10),i+3,bf
END IF
NEXT i
REM ///////////////// Auswahl des Codes ////////////////////
Auswahlcode:
RANDOMIZE TIMER
FOR i=1 TO 4
code(i)=INT(RND*6+1)
IF schwierigkeit=1 THEN
IF i>1 THEN
FOR j=1 TO i-1
IF code(i)=code(j) THEN Auswahlcode
NEXT j
END IF
END IF
REM ///////// PRINT code(i);
NEXT i
Auswahl:
LOCATE 21,20
PRINT versuch ".Auswahl";:INPUT Auswahl$
FOR i=1 TO 4
aus(i)=VAL(MID$(Auswahl$,i,1))
IF aus(i)<1 OR aus(i)>6 THEN
LOCATE 22,20
PRINT "Falsche Eingabe!"
GOSUB WarteTaste
LOCATE 21,20
PRINT " "
LOCATE 22,20
PRINT " "
GOTO Auswahl
END IF
NEXT i
REM ////////////////////////// Routine zur Feststellung ob doppelt //////
doppelt=0
doppelmerker=0
q=0
FOR i= 1 TO 4
FOR j= 1 TO 4
IF code(i)=code(j) THEN
doppelt=doppelt+1
doppelmerker=doppelmerker+1
END IF
NEXT j
IF doppelmerker > 1 THEN
q=q+1
doppelmerkercode(q)=code(i)
doppelmerker=0
END IF
NEXT i
IF doppelt=4 THEN doppelt=1
IF doppelt=6 THEN doppelt=2
IF doppelt=10 THEN doppelt=3
IF doppelt=16 THEN doppelt=4
IF doppelt=8 THEN doppelt=5
doppeltaus=0
doppelmerkeraus=0
r=0
FOR i= 1 TO 4
FOR j= 1 TO 4
IF aus(i)=aus(j) THEN
doppeltaus=doppeltaus+1
doppelmerkeraus=doppelmerkeraus+1
END IF
NEXT j
IF doppelmerkeraus > 1 THEN
r=r+1
doppelmerkerzahl(r)=aus(i)
doppelmerkeraus=0
END IF
NEXT i
IF doppeltaus=4 THEN doppeltaus=1
IF doppeltaus=6 THEN doppeltaus=2
IF doppeltaus=10 THEN doppeltaus=3
IF doppeltaus=16 THEN doppeltaus=4
IF doppeltaus=8 THEN doppeltaus=5
REM //////////////////////////// Darstellung der Farben /////////////
ver=versuch+1
FOR i=1 TO 4
LINE (i*10+(i*20-12),ver/1.58*10+(ver/2*20-12))-(10+(i*10+(i*20-12)),10+(ver/1.58*10+(ver/2*20-12))),aus(i)+3,bf
NEXT i
REM /////////////////////////// Auswahl Schwarz/Weiss //////////////
weiss=0
schwarz=0
FOR i= 1 TO 4
FOR j= 1 TO 4
IF aus(j)=code(i) THEN
weiss=weiss+1
merker=merker+1
IF i=j THEN
weiss=weiss-1
merker=merker-1
schwarz=schwarz+1
merker2=merker2+1
END IF
END IF
NEXT j
IF schwierigkeit=1 AND merker > 1 THEN
IF merker2=1 THEN weiss=weiss-merker
END IF
IF doppeltaus=4 THEN weiss=0
merker=0
merker2=0
NEXT i
IF doppelt=2 THEN
IF doppeltaus=1 THEN
weiss=weiss-1
END IF
END IF
IF doppeltaus=2 THEN
IF doppelt=2 THEN
weiss=weiss-2
END IF
IF doppelt=3 THEN
weiss=weiss-4
END IF
IF doppelt=4 THEN
weiss=weiss-6
END IF
END IF
IF doppeltaus=3 THEN
IF doppelt=2 THEN
weiss=weiss-4
END IF
IF doppelt=3 THEN
weiss=weiss-6
END IF
IF doppelt=4 THEN
weiss=weiss-9
END IF
END IF
IF doppeltaus=4 THEN
weiss=0
END IF
IF doppeltaus=5 THEN
IF doppelt=1 THEN
weiss=weiss-2
END IF
IF doppelt=2 THEN
weiss=weiss-3
IF schwierigkeit=1 THEN weiss=weiss+1
END IF
END IF
REM ////////////////////// Grafische Darstellung Schwarz/Weiss ///////
FOR i=1 TO weiss
CIRCLE (140+(i*10+(i*20-12)),ver/1.58*10+(ver/2*20-12)+5),5,1
PAINT (140+(i*10+(i*20-12)),(ver/1.58*10+(ver/2*20-12)+5)),11,1
NEXT i
IF schwarz>0 THEN
IF weiss=0 AND schwarz<5 THEN merkerwahl=1
FOR j=weiss+merkerwahl TO schwarz+weiss
CIRCLE (140+(j*10+(j*20-12)),ver/1.58*10+(ver/2*20-12)+5),5,1
NEXT j
END IF
merkerwahl=0
REM ////////////////////// Auswertung ///////////////////////
IF schwarz=4 THEN Richtig
IF versuch=10 THEN Verloren
versuch=versuch+1
LOCATE 21,20
PRINT " "
LOCATE 22,20
PRINT " "
GOTO Auswahl
GOSUB WarteTaste
WINDOW CLOSE 2
SCREEN CLOSE 1
END
rot:
PALETTE 4,.93,.2,0
RETURN
himmelblau:
PALETTE 0,.47,.87,1
RETURN
blau:
PALETTE 5,.4,.6,1
RETURN
gruen:
PALETTE 6,.73,.87,0
RETURN
violett:
PALETTE 7,1,.13,.93
RETURN
grau:
PALETTE 8,.73,.73,.73
RETURN
braun:
PALETTE 9,.8,.6,.53
RETURN
schwarz:
PALETTE 10,0,0,0
RETURN
weiss:
PALETTE 11,1,1,1
RETURN
WarteTaste:
w$=INKEY$
IF w$="" THEN WarteTaste
RETURN
Richtig:
GOSUB WarteTaste
CLS
LOCATE 6,5
PRINT "Sie haben nach dem ";versuch;".Versuch"
LOCATE 7,10
PRINT "richtig getippt !!!"
GOTO NochmalSpielen
Verloren:
CLS
LOCATE 6,5
PRINT "Leider konnten Sie den Code auch"
LOCATE 7,5
PRINT "nach dem 10.Versuch nicht knacken."
GOTO NochmalSpielen
NochmalSpielen:
LOCATE 8,5
PRINT "Wollen Sie nochmal spielen (J/N)?"
WarteTaste1:
w$=INKEY$
IF w$="" THEN WarteTaste1
IF w$="J" OR w$="j" THEN
WINDOW CLOSE 2
SCREEN CLOSE 1
GOTO Start
END IF
WINDOW CLOSE 2
SCREEN CLOSE 1
END